<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <ui:composition template="layout.xhtml">
        <ui:define name="title">
            <h2><a href="#" class="back" onclick="history.go(-1)"/>Cadastrar Declaração Nascido Vivo</h2>
        </ui:define>

        <ui:define name="body">

            <h:form id="declaracaoForm" enctype="multipart/form-data">            
                <p:messages id="messages" closable="true" showDetail="false" autoUpdate="true"  />
                <p>
                    <p:panel id="declaracaoPanel" styleClass="container_24 clearfix" >
                        <p:outputLabel value="Número:" styleClass="grid_3" for="numeroInputText" />
                        <p:inputText id="numeroInputText" styleClass="grid_8"
                                     required="true" value="#{managerCriarDeclaracao.declaracao.numero}" />

                        <div class="clear" />
                        <p:outputLabel value="Estabelecimento:" styleClass="grid_3 estabelecimentoLabel" for="estabelecimentoInputTextarea" />
                        <p:inputTextarea id="estabelecimentoInputTextarea" 
                                         styleClass="grid_20" required="true"
                                         value="#{managerCriarDeclaracao.declaracao.estabelecimento}" />

                        <br/>
                    </p:panel>

                    <h2>Interessado</h2>

                    <p:panel id="clientePanel" styleClass="container_24 clearfix">
                        <p:outputLabel id="personOutputLabel" value="Pessoa:" 
                                       for="personRadioButton"
                                       styleClass="grid_3" style="top: 6px" />
                        <div class="grid_8 divSelectOneMenu">
                            <p:selectOneRadio id="personRadioButton" value="#{managerCriarDeclaracao.pessoa.tipoDocumento}" >
                                <f:selectItems value="#{managerCriarDeclaracao.tipoDocumento}" />
                                <p:ajax event="change" update=":declaracaoForm:clientePanel, :declaracaoForm:messages" />
                            </p:selectOneRadio>
                        </div>
                        <div class="clear"/>

                        <p:outputLabel value="#{managerCriarDeclaracao.pessoaFisica ? 'CPF:' : 'CNPJ:'}" 
                                       styleClass="grid_3" for="cpfCnpjInputMask" />
                        <p:inputMask id="cpfCnpjInputMask"
                                     value="#{managerCriarDeclaracao.pessoaFisica ? managerCriarDeclaracao.pessoa.cpf : managerCriarDeclaracao.pessoa.cnpj}" 
                                     styleClass="grid_8" required="true"
                                     mask="#{managerCriarDeclaracao.pessoaFisica ? '999.999.999-99' : '99.999.999/9999-99' }"
                                     autocomplete="false" >
                            <p:ajax event="blur" update=":declaracaoForm:clientePanel, :declaracaoForm:messages"
                                    listener="#{managerCriarDeclaracao.existeCliente()}" />
                        </p:inputMask>
                        <div class="clear"/>

                        <p:outputLabel value="#{managerCriarDeclaracao.pessoaFisica ? 'Nome:' : 'Nome Fantasia:'}" 
                                       styleClass="grid_3 #{managerCriarDeclaracao.pessoaFisica ? '' : 'nomeFantasiaLabel'}" 
                                       for="nomeInputText" />
                        <p:inputText id="nomeInputText" readonly="#{managerCriarDeclaracao.pessoa.id ne null}"
                                     required="true"
                                     value="#{managerCriarDeclaracao.pessoaFisica ? managerCriarDeclaracao.pessoa.nome : managerCriarDeclaracao.pessoa.nomeFantasia}" 
                                     styleClass="grid_20" />
                        <div class="#{managerCriarDeclaracao.pessoaFisica ? 'clear' : ''}" />

                        <p:outputLabel value="Nome da Mãe:" styleClass="grid_3" 
                                       for="nomeMaeInputText" rendered="#{managerCriarDeclaracao.pessoaFisica}"/>
                        <p:inputText id="nomeMaeInputText" 
                                     value="#{managerCriarDeclaracao.pessoa.nomeMae}" 
                                     readonly="#{managerCriarDeclaracao.pessoa.id ne null}"
                                     rendered="#{managerCriarDeclaracao.pessoaFisica}"
                                     styleClass="grid_20" />
                        <div class="#{managerCriarDeclaracao.pessoaFisica ? 'clear' : ''}" />

                        <p:outputLabel value="RG:" styleClass="grid_3" for="rgInputText"
                                       rendered="#{managerCriarDeclaracao.pessoaFisica}"/> 
                        <p:inputText id="rgInputText" styleClass="grid_8" 
                                     value="#{managerCriarDeclaracao.pessoa.rg}"
                                     readonly="#{managerCriarDeclaracao.pessoa.id ne null}"
                                     rendered="#{managerCriarDeclaracao.pessoaFisica}"/>

                        <p:outputLabel value="Data de Nascimento:" styleClass="grid_4" 
                                       for="dataNascCalendar" rendered="#{managerCriarDeclaracao.pessoaFisica}"/>
                        <p:calendar id="dataNascCalendar" value="#{managerCriarDeclaracao.pessoa.dataNascimento}"
                                    showOn="both" locale="pt" yearRange="1900:2100" 
                                    readonly="#{managerCriarDeclaracao.pessoa.id ne null}"
                                    rendered="#{managerCriarDeclaracao.pessoaFisica and managerCriarDeclaracao.pessoa.id eq null}"
                                    navigator="true" pattern="dd/MM/yyyy" styleClass="grid_9" />
                        <div class="grid_9">
                            <p:inputText id="dataNascInputText" value="#{managerCriarDeclaracao.dataNascimento()}"
                                         style="width: 90%" readonly="true"
                                         rendered="#{managerCriarDeclaracao.pessoaFisica and managerCriarDeclaracao.pessoa.id ne null}" />
                        </div>
                    </p:panel>

                    <br/>
                    <h2>Anexos</h2>

                    <p:panel id="processoCamposPanel" styleClass="container_24 clearfix" >

                        <p:fileUpload 
                            mode="advanced"
                            label="Anexar"
                            uploadLabel="Enviar"
                            cancelLabel="Cancelar"
                            fileUploadListener="#{managerCriarDeclaracao.handleAnnex}"
                            multiple="true"
                            auto="true"
                            allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
                            dragDropSupport="true"
                            invalidFileMessage="Tipo de arquivo não suportado."
                            invalidSizeMessage="Tamanho do arquivo não é suportado"
                            immediate="true"
                            update=":declaracaoForm:anexosPanel" />

                        <p:panel id="anexosPanel" styleClass="container_24 clearfix arquivosAnexadosPanel" header="Arquivos anexados">

                            <ui:repeat value="#{managerCriarDeclaracao.anexos}" var="a">
                                <p:panel styleClass="grid_5">
                                    <h:outputLink  
                                        value="#{a.tipo ne 'application/pdf' ? 'viewImage.xhtml':'show'}" title="#{a.tipo}"  target="_blank" >

                                        <div style="width: 100%;" class="grid_4">

                                            <p:graphicImage id="anexoImagem"
                                                            styleClass="image grid_3" rendered="#{a.tipo ne 'application/pdf'}"
                                                            style="margin-left:3%; width: 80px;"
                                                            url="show/?annex=#{a.url.concat('thumbnail.').concat(a.nome)}" />

                                            <p:graphicImage id="anexoPdf"
                                                            styleClass="image grid_3" rendered="#{a.tipo eq 'application/pdf'}"
                                                            style="margin-left:3%; width: 80px;" 
                                                            url="media/images/pdf.jpeg" />

                                            <div class="clear"/>
                                            <p:outputLabel  value="#{managerCriarDeclaracao.nomeAnexo(a)}" 
                                                            for="anexoImagem"
                                                            style="margin-left:1%; width: 100px;" rendered="#{a.tipo ne 'application/pdf'}"/>

                                            <p:outputLabel for="anexoPdf"
                                                           value="#{managerCriarDeclaracao.nomeAnexoPdf(a)}" 
                                                           style="margin-left:1%; width: 100px;" rendered="#{a.tipo eq 'application/pdf'}"/>
                                        </div>
                                        <f:param name="annex" value="#{a.url.concat(a.nome)}"/>
                                    </h:outputLink>

                                    <p:commandButton id="removeButton" alt="Remover" value="Remover"
                                                     icon="ui-icon-trash" update=":declaracaoForm:processoCamposPanel"
                                                     actionListener="#{managerCriarDeclaracao.removerAnexo(a)}" />
                                </p:panel>
                            </ui:repeat>
                        </p:panel>
                        <hr style="margin-top: -10px"/>
                        <div class="clear" />
                    </p:panel>

                    <div class="buttonAction">
                        <p:commandButton value="Salvar" actionListener="#{managerCriarDeclaracao.salvar()}"
                                         icon="ui-icon-disk" styleClass="ui-priority-primary" 
                                         update="@form" />
                        <p:button value="Cancelar" icon="ui-icon-circle-close"
                                  href="indexdeclaracao.xhtml" />
                    </div>
                </p>
            </h:form>
        </ui:define>
    </ui:composition>
</html>


